package com.matrix.media.entity;

import lombok.Data;

@Data
public class SubtitleTrackClip {

    /**
     * 字幕素材类型。取值：
     *
     * Subtitle 外挂字幕文件
     *
     * Text 横幅文字
     */
    private String Type;


    /**
     * 字幕素材子类型。取值：
     * srt 外挂srt字幕
     * ass 外挂ass字幕
     * 字幕素材类型为横幅文字时，可忽略该字段。
     */
    private String SubType;

    /**
     * 字幕文件对应的oss地址。当字幕类型为外挂字幕时必填。格式为：
     *
     * https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-object.srt
     *
     * 注：
     *
     * FileURL 仅支持OSS外网地址，不支持oss加速地址、cdn地址或其他http url。
     *
     * 示例：https://help.aliyun.com/document_detail/198744.html#section-plo-slf-1oq
     */
    private String FileURL;

    /**
     * 当字幕类型为横幅文字时，表示文字左上角距离输出视频左上角的横向距离。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频宽的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float X;

    /**
     * 当字幕类型为横幅文字时，表示文字左上角距离输出视频左上角的纵向距离。注：支持百分比和像素两种形式。当取值为[0～0.9999]时，表示相对输出视频高的占比。当取值为>=2的整数时，表示绝对像素。
     */
    private Float Y;

    /**
     * 当字幕类型为横幅文字时，表示文字出现在时间线的起始位置。单位：秒，精确到小数点后4位。如果TimelineIn不填，则会按照素材顺序相接的方式自动计算TimelineIn
     */
    private Float TimelineIn;

    /**
     * 当字幕类型为横幅文字时，表示文字出现在时间线的结束位置。单位：秒，精确到小数点后4位。如果TimelineOut不填，则会按照素材顺序相接的方式自动计算TimelineOut
     */
    private Float TimelineOut;

    /**
     * 当字幕类型为横幅文字时必填，表示文字内容。
     */
    private String Content;

    /**
     * 当字幕类型为横幅文字时，表示文字的字体。默认为SimSun，宋体。
     * 具体支持的字体列表参见：https://help.aliyun.com/document_detail/449567.html。
     */
    private String Font;


    /**
     * 当字幕类型为横幅文字时，表示文字的字号。
     */
    private Integer FontSize;


    /**
     * 当字幕类型为横幅文字时，表示将文字字号到实际文字渲染大小的计算方式，默认处理方式为RealDim。
     *
     * Nominal：字幕渲染高度（像素值）等于字号FontSize
     *
     * RealDim：在某些字体上，字幕渲染高度（像素）可能会小于字号FontSize
     */
    private String SizeRequestType;

    /**
     * 当字幕类型为横幅文字时，表示文字的颜色，格式为#后跟16进制值。例如：#ffffff。
     */
    private String FontColor;

    /**
     * 当字幕类型为横幅文字时，表示文字的透明度，取值0-1，默认1。1为不透明，0为完全透明。
     */
    private String FontColorOpacity;

    /**
     * 当字幕类型为横幅文字时，表示文字的字体外观。
     */
    private com.matrix.media.entity.FontFace FontFace;

    /**
     * 当字幕类型为横幅文字时，表示横幅文字字间距。单位：像素值，默认为0。
     */
    private Integer Spacing;

    /**
     * 当字幕类型为横幅文字时，表示横幅文字行间距。单位：像素值，默认为0。
     */
    private Integer LineSpacing;

    /**
     * 当字幕类型为横幅文字时，表示横幅文字逆时针旋转角度。单位：度，默认为0。
     */
    private Float Angle;

    /**
     * 设置横幅文字边框和阴影格式。取值1或3，1=边框+阴影，3=不透明底框。默认为1。
     */
    private Integer BorderStyle;

    /**
     * 当字幕类型为横幅文字时，表示横幅文字描边宽度。单位：像素值，默认为0。
     */
    private Integer Outline;


    /**
     * 当字幕类型为横幅文字时，表示横幅文字描边颜色，格式为#后跟16进制值。例如：#ffffff。
     */
    private String OutlineColour;


    /**
     * 当字幕类型为横幅文字时，表示横幅文字投下阴影的深度，单位：像素值，默认为0。
     */
    private Integer Shadow;

    /**
     * 当字幕类型为横幅文字时，表示横幅文字阴影颜色，格式为#后跟16进制值。例如：#ffffff。
     */
    private String BackColour;

    /**
     * 当字幕类型为横幅文字时，用于设置定位对齐方式，默认为TopLeft，支持设置：
     *
     * TopLeft：视频左上角
     *
     * TopCenter：视频竖直中轴线上侧
     *
     * TopRight：视频右上角
     *
     * CenterLeft：视频水平中轴线左侧
     *
     * CenterCenter：视频中心位置
     *
     * CenterRight：视频水平中轴线右侧
     *
     * BottomLeft：视频左下角
     *
     * BottomCenter：视频竖直中轴线下侧
     *
     * BottomRight：视频右下角
     */
    private String Alignment;

    /**
     * 横幅文字当超出视频宽度或超出指定TextWidth时进行自动换行或缩放：
     *
     * AutoWrap：自动换行
     *
     * AutoScale：自动缩放
     *
     * AutoWrapAtSpaces：只在空格位置自动换行（适用于纯英文字幕自动换行场景）
     */
    private String AdaptMode;


    /**
     * 字幕文本框宽度，当设置AdaptMode时生效。将按照该值设置文本框宽度进行自动换行或缩放。不填写时，会按照视频宽度进行自动换行或缩放。
     * 当值大于0小于等于1时，表示相对输出视频的宽度，当值大于1时，表示绝对像素值。
     */
    private Float TextWidth;

    
}
